﻿#ifndef MYTINYSTL_QUEUE_H_
#define MYTINYSTL_QUEUE_H_

// 这个头文件包含了两个模板类 queue 和 priority_queue
// queue          : 队列
// priority_queue : 优先队列

#include "deque.h"
#include "vector.h"
#include "functional.h"
#include "heap_algo.h"

namespace mystl{
	
// 模板类 queue
// 参数一代表数据类型，参数二代表底层容器类型，缺省使用 mystl::deque 作为底层容器
template <class T, class Container = mystl::deque<T>>
class queue{
public:
	typedef Container 							container_type;
	typedef typename Container::value_type 		value_type;
	typedef typename Container::size_type 		size_type;
	typedef typename Container::reference 		reference;
	typedef typename Container::const_reference const_reference;
	
	static_assert(std::is_same<T, value_type>::value,
					"the value_type of Container should be same with T");
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
}
	
	
}